home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 2
/
Amiga Tools 2.iso
/
tools
/
filer
/
rexx
/
fd2pragma.filer
< prev
next >
Wrap
Text File
|
1995-03-09
|
4KB
|
129 lines
/*
$VER: FD2Pragma.filer 1.1 (26.11.93)
Author:
Michael Böhnisch (billy@uni-paderborn.de) (mb)
Function:
Create files with SAS/C #pragma statements from library
function description files (#?.fd). Automagically chooses
"standard" file name for target file.
Requires:
SAS/C fd2pragma tool (SC:C/fd2pragma)
Call:
fd2pragma
(no parameters, operates on selected files in Filer's
source window)
Example for "Filer.RC":
XBUTTON 3,3,0,1,"fd2pragma","fd2pragma"
History:
05.10.1993 1.0 Initial Release (mb)
26.11.1993 1.1 Review for Filer 3.10 Gamma 2 (mb)
*/
OPTIONS RESULTS /* aquire results */
/* -------------------------------------------------------------------- */
fdcmd = 'SC:C/fd2pragma' /* conversion command to call */
fdtail = '_lib.fd' /* fname suffix for validity check */
fdtaillen = LENGTH( fdtail )
pragmasuff = '_pragmas.h' /* suffix to replace fdtail */
/* -------------------------------------------------------------------- */
text1 = "is no fd file or has wrong name.|"
text1 = text1 || "Continue anyway?"
text2 = "Name of header file to create?"
text2 = text2 || " (`" || pragmasuff || "´ is appended automagically)"
/* -------------------------------------------------------------------- */
ADDRESS 'FilerRexx' /* default to Filer's AReXX port */
PANEL OFF /* deactivate Filer's GUI buttons */
/* -------------------------------------------------------------------- */
/* get source directory name, append "/" if it is not a device name */
/* -------------------------------------------------------------------- */
GETSOURCEPATH
srcdir = RESULT
IF RIGHT( srcdir, 1 ) ~= ":" THEN srcdir = srcdir || "/"
/* -------------------------------------------------------------------- */
/* get target directory name, append "/" if it is not a device name */
/* -------------------------------------------------------------------- */
GETTARGETPATH
tgtdir = RESULT
IF RIGHT( tgtdir, 1 ) ~= ":" THEN tgtdir = tgtdir || "/"
GETNUMENTRIES /* get number of source entries */
numentries = RESULT
DO i = 1 TO numentries /* loop through all entries */
GETNAME i /* get ith entry */
entry = RESULT
type = LEFT( entry, 1 ) /* parse filetype (f, d, F, D) */
name = SUBSTR( entry, 2 ) /* parse filename */
SELECT
WHEN type = 'f' THEN DO /* if entry is a selected file... */
/* ---------------------------------------------------------------- */
/* do a validity check on the filename, consult user on */
/* failure */
/* ---------------------------------------------------------------- */
IF RIGHT( name, fdtaillen ) ~= fdtail THEN DO
txt1 = name || "|" || text1
QUESTBOX txt1
IF RESULT = 1 THEN DO
SETSTRING name
GETSTRING text2
IF RESULT ~= 'RESULT' THEN DO
node = RESULT
CALL Convert
END
END
END
ELSE DO
node = SUBSTR( name, 1, LENGTH( name ) - fdtaillen )
CALL Convert
END
TOGGLEENTRY i
END /* WHEN */
WHEN type = 'd' THEN /* if entry is a directory... */
TOGGLEENTRY i /* de-select and ignore */
OTHERWISE /* ignore entries not selected */
END /* SELECT */
END /* DO i */
UPDATETARGETDIR /* re-read Filer's dest window */
PANEL ON /* activate buttons */
EXIT /* voilá! */
/* -------------------------------------------------------------------- */
/* Subroutine "Convert": */
/* Create History entry for filer, execute conversion command */
/* -------------------------------------------------------------------- */
Convert:
HISTORY "fd2pragma" srcdir||name "-->" tgtdir||node||pragmasuff
SHELL COMMAND fdcmd srcdir||name tgtdir||node||pragmasuff
RETURN